草庐IT

c++ - CreateProcess 和重定向输出

全部标签

c - mainCRTStartup 与 wmainCRTStartup

IunderstandthatVisualC++LinkerchoosesmainCRTStartup/wmainCRTStartupwhenoption/SUBSYSTEMissettoCONSOLE.我不明白的是链接器如何在两者之间进行选择。我在VC2015上用一个简单的程序测试过,如果wmain存在(连main也存在),就调用wmain。否则调用main。 最佳答案 链接器将尝试通过遍历objs的符号表来推断需要哪个入口点例程。它在_main之前搜索_wmain,这就是为什么选择前者,即使您同时拥有两者。然后链接器从您的默认l

c - 使 C 程序在 x 秒后重新启动

在Windows中,是否可以让用C编写的程序停止并在x秒后自行重新启动?如果是,如何实现?? 最佳答案 您可以通过让您的程序启动第二个程序来实现该目标,该程序的唯一功能是等待一段时间,然后再次启动您的第一个程序。在伪代码中,这个想法是:ProgramA:DowhatevertheprogramissupposedtodoLaunchprogramBexit.ProgramB:WaitpredeterminedtimeLaunchprogramAexit.我希望这能充分回答您的问题。 关于

c - WTS_CLIENT_ADDRESS 地址无法正确打印

我正在尝试获取登录到计算机的所有RDP连接的IP地址。我正在使用WTSEnumerateSessions和WTSQuerySessionInformation来检索指向包含地址的WTS_CLIENT_ADDRESS结构的指针。这是代码的一部分:WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE,SessionNo,WTSClientAddress,&ppBuffer,&pBytesReturned);address=(WTS_CLIENT_ADDRESS*)ppBuffer;if(AF_INET==address->AddressF

windows - 为什么在运行应该查找 *.exe 文件并输出其名称的 FOR 循环时始终显示相同的文件名?

我希望我的批处理脚本只显示*.exe文件的特定目录中的文件名,而没有任何路径或扩展名。到目前为止我的代码是这样的:for/R"%cd%"%%ein(*.exe)do(set"EXENAME=%%~ne"echo"%EXENAME%")但是这段代码没有按预期工作。假设我在该目录中有两个文件:tomcat7.exe和tomcat7w.exe。但是在处理脚本时,我得到的答案是:"tomcat7w""tomcat7w"这是为什么? 最佳答案 与Noodles一样多的批处理文件编码新手,您遇到了延迟扩展陷阱暗示。使用echo%%~ne而不是e

windows - 注册表中命令的重定向

我正在尝试为每个文件添加右键单击选项,以便它执行命令。乍一看似乎很简单。右键单击选项通过进入注册表编辑器,特别是HKCR\*\shell(代表每种文件类型出现的上下文菜单选项,因此是“*”),我添加了我自己的key:HKEY_CLASSES_ROOT*shellmy_right_click_option(Default)="Clickme!"command(Default)=my_command命令在此之后,可点击的条目立即出现在上下文菜单中。在我的例子中,键名为“checkmd5”,命令键的“默认”值存储命令“my_command”以在单击时执行。命令是:"C:\Quite_a_lo

c - malloc() 并分配 : C code in run well in OS X; not in Win 8. 1

我编写的代码在OSX中没有任何问题,但在VS2013社区上运行时出现以下错误。Unhandledexceptionat0x001A3D22inMyproject.exe:0xC0000005:Accessviolationwritinglocation0x00000000.这是有问题的代码。原来的代码多了一些行,但是下面的代码自己产生了同样的错误。#includeintmain(void){int**p;p=(int**)malloc(sizeof(int*)*5000);for(inti=0;i这是发生错误时的状态。i和p为红色。namevaluetypei4118intp0x007

我可以使用自动要求管理员权限的 GCC 编译 C 程序吗?

我想编译一个程序,在先前执行的程序退出后简单地终止任务。如果没有管理员权限,这是行不通的。我知道您可以从可执行文件属性的兼容性选项卡中选择“以管理员身份运行程序”,但如果可能的话,我想在分发程序时避免这样做。我在Windows8.1上使用GCC4.8.1进行编译。编辑:大约5年后我可能会选择system("tskill")在这种情况下,因为它不需要用户进程的管理员权限。或者使用runas/vbscript进行一些破解。 最佳答案 看起来这可能已经被弄清楚了——你可能想看看这里是否有帮助:Embedmanifestfiletorequ

c - CodeBlocks(适用于 Windows)中的 sleep C 功能无法正常工作

我正在尝试用C(适用于Windows)做一个秒表,代码似乎可以工作,但sleep功能的时间与实时不匹配。进程返回0(0x0)执行时间:1.907秒按任意键继续。问题是执行时间大约是2秒,但应该只有1秒。只是想知道我做错了什么,因为Windows中的sleep功能接受毫秒作为参数,它应该可以工作。这是代码#include#include#includeintmain(){intmilliseconds=0;intseconds=0;intcounter;for(counter=0;counter 最佳答案 您正在休眠,超时为1毫秒。实

python - 禁用 python 记录器输出

我有用于Python2.7.10的python脚本,如下所示:importlogginglogger=logging.getLogger()logger.setLevel(logging.INFO)logger.addHandler(logging.StreamHandler())logger.info("Hello,world!");是否有可能以某种方式在Windows机器上从Powershell运行此脚本,使其不产生任何输出?我试过将输出重定向到文件C:\Python2.7\python.exeC:\Users\User\script.py>output.txt但这并没有帮助,脚本

windows oneliner 在环境变量中设置命令输出

如此处所述Isitpossibletosetanenvironmentvariabletotheoutputofacommandincmd.exe我一直用那个mycommand.exe>%TEMP%\out.txtset/PFOO=但这很丑陋,因为它创建了一个文件。for方法更好但复杂我想要一些简单的launix,比如:mycommand.exe|set/PFOO=没有错误,但是在我运行之后FOO没有设置。为什么这不起作用? 最佳答案 我能想到的最好的方法是创建您自己的小批处理文件,静默使用FOR结构。例如,您可以创建一个名为Bat